/**
 * 入口文件
 * Vue.use(~) 专注挂载vue插件，插件是对象则必须提供install方法，是函数则会被作为install方法。当install方法同一个插件多次调用，插件将只会被安装一次
 * Vue.prototype.xxx 挂载任何想在全局频繁调用的 js 函数/对象
 */
import Vue from 'vue'
import App from './App'
// 引入uView
import uView from 'uview-ui'
Vue.use(uView)

// 阻止启动生产消息，配置开发环境
Vue.config.productionTip = false

// 引入Vuex
import store from './store/index.js'
// 小程序页面组件和App.vue组件写法和引入方式是一致的，区分两者则需要设置
App.mpType = 'app'

const app = new Vue({
	store, // store会定义全局方法，所以放入Vue实例对象里
	...App
})

// http拦截器，需要传递Vue的实例对象，获取this来调用挂载Vue上的方法，必须放new Vue()和app.$mount()之间
import httpInterceptor from '@/static/libs/http.interceptor.js'
Vue.use(httpInterceptor, app)

// API集中管理，方便一些固定的请求参数可以不用显式的传入，只需传递参数
import httpApi from '@/static/libs/http.api.js'
Vue.use(httpApi, app)

app.$mount()
